1. Field of the Invention
The present invention generally relates to image processing apparatuses and application executing methods, and more particularly to an image processing apparatus having a plurality of types of input parts for inputting data that is a target of an image processing and a plurality of types of output parts for outputting a result of the image processing, and to an application executing method therefor.
2. Description of the Related Art
Recently, in image processing apparatuses such as printers, copying apparatuses, scanners, facsimile apparatuses and Multi Function Peripherals (MFPs) which perform functions of a plurality of such apparatuses in a single unit, the memory space is limited but a Central Processing Unit (CPU) is provided similarly to a general-purpose computer in order to perform various functions under the control of applications (or application programs).
For example, an image processing apparatus proposed in a Japanese Patent No. 3679349 is provided with a platform of the function which is used in common by a plurality of applications. The application can be implemented by using an Application Program Interface (API) of the platform. According to the proposed image processing apparatus, it is possible to avoid implementing the same function a plurality of times among the applications because the function which is used in common by the plurality of applications is provided as the platform. As a result, it is possible to improve the efficiency with which the applications are developed as a whole.
But in general, in the case of the platform which is used in common and is provided with the API, the efficiency of developing the application may not be improved to an expected level if the granularity of the interface or the function provided by the platform is not designed appropriately.
For example, if the granularity is too small, the API may be called a large number of times even though the application only provides a simple service, and the source code will become complex.
On the other hand, if the granularity is too large, it is necessary to internally modify the platform in a case where the application to be implemented provides a service which is added with a modification to a portion of the functions provided by a certain interface, and the number of developing processes may consequently be increased. Particularly in a case where the modules within the platform have a strong dependency relationship with each other, the situation becomes complex because it is not only necessary to add new functions to the platform but it may also be necessary to correct an existing portion.
In addition, when implementing an application which modified a portion (for example, an image input process) of the service provided by the existing application, it is not possible to call the existing application with respect to the portions other than the modified portion. Accordingly, it is necessary to implement a new application by newly writing the source code.